﻿using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.EntityFrameworkCore;
using OL.FrameCore.Application.Module.Dto;
using OL.FrameCore.Infrastructure.Code;

namespace OL.FrameCore.Application.Module
{
    public interface IModuleService : IAutoInject
    {
        /// <summary>
        /// 获取所有模块列表
        /// </summary>
        /// <returns></returns>
        IList<GetModuleListModel> GetAllModuleList();
        /// <summary>
        /// 获取模块列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        PageData<GetModuleListModel> GetModuleList(GetModuleListRequest request);
        /// <summary>
        /// 获取模块
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        GetModuleResponse GetModule(int id);
        /// <summary>
        /// 添加模块
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Result AddModule(AddModuleRequest request);
        /// <summary>
        /// 修改模块
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Result UpdateModule(UpdateModuleRequest request);
        /// <summary>
        /// 删除模块
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Result DeleteModule(int id, int opeatorId);
    }
}
